[INFO] fetching crate cratetorrent 0.1.0...
[INFO] checking cratetorrent-0.1.0 against master#158f00a1c5175648af6f6099b075f78d1d014a28 for pr-121251
[INFO] extracting crate cratetorrent 0.1.0 into /workspace/builds/worker-3-tc1/source
[INFO] validating manifest of crates.io crate cratetorrent 0.1.0 on toolchain 158f00a1c5175648af6f6099b075f78d1d014a28
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+158f00a1c5175648af6f6099b075f78d1d014a28" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking crates.io crate cratetorrent 0.1.0
[INFO] finished tweaking crates.io crate cratetorrent 0.1.0
[INFO] tweaked toml for crates.io crate cratetorrent 0.1.0 written to /workspace/builds/worker-3-tc1/source/Cargo.toml
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+158f00a1c5175648af6f6099b075f78d1d014a28" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+158f00a1c5175648af6f6099b075f78d1d014a28" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded mockito v0.28.0
[INFO] [stderr]   Downloaded pretty_assertions v0.6.1
[INFO] [stderr]   Downloaded nix v0.19.1
[INFO] [stderr]   Downloaded serde_bencode v0.2.4
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+158f00a1c5175648af6f6099b075f78d1d014a28" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] dfcb91b9ad88b9ab606350105fb92d6babaecc8597fcb4cbf0c324848fe0d963
[INFO] running `Command { std: "docker" "start" "-a" "dfcb91b9ad88b9ab606350105fb92d6babaecc8597fcb4cbf0c324848fe0d963", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "dfcb91b9ad88b9ab606350105fb92d6babaecc8597fcb4cbf0c324848fe0d963", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "dfcb91b9ad88b9ab606350105fb92d6babaecc8597fcb4cbf0c324848fe0d963", kill_on_drop: false }`
[INFO] [stdout] dfcb91b9ad88b9ab606350105fb92d6babaecc8597fcb4cbf0c324848fe0d963
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+158f00a1c5175648af6f6099b075f78d1d014a28" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 7def61a0b879ef87af76884d16c2a1f7d24e31b119556e1a32bcd2ed8be3cdd1
[INFO] running `Command { std: "docker" "start" "-a" "7def61a0b879ef87af76884d16c2a1f7d24e31b119556e1a32bcd2ed8be3cdd1", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.153
[INFO] [stderr]     Checking memchr v2.7.1
[INFO] [stderr]     Checking once_cell v1.19.0
[INFO] [stderr]     Checking log v0.4.21
[INFO] [stderr]     Checking futures-core v0.3.30
[INFO] [stderr]    Compiling slab v0.4.9
[INFO] [stderr]     Checking futures-sink v0.3.30
[INFO] [stderr]    Compiling syn v2.0.52
[INFO] [stderr]     Checking itoa v1.0.10
[INFO] [stderr]    Compiling serde v1.0.197
[INFO] [stderr]    Compiling cc v1.0.88
[INFO] [stderr]    Compiling pkg-config v0.3.30
[INFO] [stderr]    Compiling vcpkg v0.2.15
[INFO] [stderr]     Checking pin-project-lite v0.2.13
[INFO] [stderr]    Compiling tokio-macros v0.2.6
[INFO] [stderr]     Checking pin-project-lite v0.1.12
[INFO] [stderr]     Checking futures-channel v0.3.30
[INFO] [stderr]    Compiling unicase v2.7.0
[INFO] [stderr]     Checking futures-task v0.3.30
[INFO] [stderr]     Checking futures-io v0.3.30
[INFO] [stderr]     Checking tinyvec_macros v0.1.1
[INFO] [stderr]     Checking tinyvec v1.6.0
[INFO] [stderr]     Checking tracing-core v0.1.32
[INFO] [stderr]    Compiling indexmap v1.9.3
[INFO] [stderr]     Checking bytes v1.5.0
[INFO] [stderr]     Checking foreign-types-shared v0.1.1
[INFO] [stderr]    Compiling httparse v1.8.0
[INFO] [stderr]    Compiling openssl v0.10.64
[INFO] [stderr]     Checking percent-encoding v2.3.1
[INFO] [stderr]    Compiling openssl-sys v0.9.101
[INFO] [stderr]     Checking http v0.2.11
[INFO] [stderr]     Checking net2 v0.2.39
[INFO] [stderr]     Checking iovec v0.1.4
[INFO] [stderr]     Checking num_cpus v1.16.0
[INFO] [stderr]     Checking form_urlencoded v1.2.1
[INFO] [stderr]     Checking tracing v0.1.40
[INFO] [stderr]     Checking unicode-normalization v0.1.23
[INFO] [stderr]     Checking foreign-types v0.3.2
[INFO] [stderr]     Checking mio v0.6.23
[INFO] [stderr]    Compiling proc-macro-error-attr v1.0.4
[INFO] [stderr]     Checking bitflags v2.4.2
[INFO] [stderr]    Compiling native-tls v0.2.11
[INFO] [stderr]     Checking ryu v1.0.17
[INFO] [stderr]     Checking itoa v0.4.8
[INFO] [stderr]     Checking hashbrown v0.12.3
[INFO] [stderr]     Checking unicode-bidi v0.3.15
[INFO] [stderr]    Compiling getrandom v0.1.16
[INFO] [stderr]     Checking tokio v0.2.25
[INFO] [stderr]    Compiling ahash v0.7.8
[INFO] [stderr]     Checking idna v0.5.0
[INFO] [stderr]    Compiling proc-macro-error v1.0.4
[INFO] [stderr]     Checking try-lock v0.2.5
[INFO] [stderr]     Checking openssl-probe v0.1.5
[INFO] [stderr]     Checking want v0.3.1
[INFO] [stderr]    Compiling mime_guess v2.0.4
[INFO] [stderr]     Checking url v2.5.0
[INFO] [stderr]     Checking http-body v0.3.1
[INFO] [stderr]     Checking socket2 v0.3.19
[INFO] [stderr]     Checking getrandom v0.2.12
[INFO] [stderr]    Compiling radium v0.5.3
[INFO] [stderr]    Compiling serde_json v1.0.114
[INFO] [stderr]     Checking tower-service v0.3.2
[INFO] [stderr]     Checking rand_core v0.5.1
[INFO] [stderr]     Checking aho-corasick v1.1.2
[INFO] [stderr]     Checking regex-syntax v0.8.2
[INFO] [stderr]     Checking ppv-lite86 v0.2.17
[INFO] [stderr]     Checking mime v0.3.17
[INFO] [stderr]     Checking hashbrown v0.11.2
[INFO] [stderr]    Compiling extend v0.1.2
[INFO] [stderr]     Checking rand_chacha v0.2.2
[INFO] [stderr]     Checking digest v0.9.0
[INFO] [stderr]     Checking block-buffer v0.9.0
[INFO] [stderr]     Checking serde_bytes v0.11.14
[INFO] [stderr]     Checking serde_urlencoded v0.7.1
[INFO] [stderr]     Checking is-terminal v0.4.12
[INFO] [stderr]     Checking encoding_rs v0.8.33
[INFO] [stderr]     Checking funty v1.1.0
[INFO] [stderr]     Checking tap v1.0.1
[INFO] [stderr]     Checking ipnet v2.9.0
[INFO] [stderr]     Checking tokio-util v0.3.1
[INFO] [stderr]     Checking dtoa v0.4.8
[INFO] [stderr]     Checking wyz v0.2.0
[INFO] [stderr]     Checking base64 v0.13.1
[INFO] [stderr]     Checking cpufeatures v0.2.12
[INFO] [stderr]     Checking opaque-debug v0.3.1
[INFO] [stderr]     Checking difference v2.0.0
[INFO] [stderr]     Checking bitvec v0.19.6
[INFO] [stderr]     Checking serde_urlencoded v0.6.1
[INFO] [stderr]     Checking sha-1 v0.9.8
[INFO] [stderr]     Checking nix v0.19.1
[INFO] [stderr]     Checking assert-json-diff v1.1.0
[INFO] [stderr]     Checking tokio-util v0.2.0
[INFO] [stderr]     Checking colored v1.9.4
[INFO] [stderr]     Checking serde_bencode v0.2.4
[INFO] [stderr]     Checking lru v0.6.6
[INFO] [stderr]     Checking rand v0.7.3
[INFO] [stderr]     Checking regex-automata v0.4.5
[INFO] [stderr]     Checking hex v0.4.3
[INFO] [stderr]     Checking pretty_assertions v0.6.1
[INFO] [stderr]    Compiling futures-macro v0.3.30
[INFO] [stderr]    Compiling pin-project-internal v1.1.4
[INFO] [stderr]    Compiling openssl-macros v0.1.1
[INFO] [stderr]    Compiling serde_derive v1.0.197
[INFO] [stderr]     Checking futures-util v0.3.30
[INFO] [stderr]     Checking pin-project v1.1.4
[INFO] [stderr]     Checking tracing-futures v0.2.5
[INFO] [stderr]     Checking regex v1.10.3
[INFO] [stderr]     Checking mockito v0.28.0
[INFO] [stderr]     Checking tokio-tls v0.3.1
[INFO] [stderr]     Checking h2 v0.2.7
[INFO] [stderr]     Checking futures-executor v0.3.30
[INFO] [stderr]     Checking futures v0.3.30
[INFO] [stderr]     Checking hyper v0.13.10
[INFO] [stderr]     Checking hyper-tls v0.4.3
[INFO] [stderr]     Checking reqwest v0.10.10
[INFO] [stderr]     Checking cratetorrent v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: variant `InvalidPieceIndex` is never constructed
[INFO] [stdout]   --> src/disk/error.rs:44:5
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub(crate) enum WriteError {
[INFO] [stdout]    |                 ---------- variant in this enum
[INFO] [stdout] 43 |     /// The block's piece index is invalid.
[INFO] [stdout] 44 |     InvalidPieceIndex,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `WriteError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `InvalidPieceIndex` is never constructed
[INFO] [stdout]   --> src/disk/error.rs:65:5
[INFO] [stdout]    |
[INFO] [stdout] 63 | pub(crate) enum ReadError {
[INFO] [stdout]    |                 --------- variant in this enum
[INFO] [stdout] 64 |     /// The block's piece index is invalid.
[INFO] [stdout] 65 |     InvalidPieceIndex,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ReadError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `tracker_id` and `event` are never read
[INFO] [stdout]   --> src/tracker.rs:78:9
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub(crate) struct Announce {
[INFO] [stdout]    |                   -------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 78 |     pub tracker_id: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 82 |     pub event: Option<Event>,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 3 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `InvalidPieceIndex` is never constructed
[INFO] [stdout]   --> src/disk/error.rs:44:5
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub(crate) enum WriteError {
[INFO] [stdout]    |                 ---------- variant in this enum
[INFO] [stdout] 43 |     /// The block's piece index is invalid.
[INFO] [stdout] 44 |     InvalidPieceIndex,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `WriteError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `InvalidPieceIndex` is never constructed
[INFO] [stdout]   --> src/disk/error.rs:65:5
[INFO] [stdout]    |
[INFO] [stdout] 63 | pub(crate) enum ReadError {
[INFO] [stdout]    |                 --------- variant in this enum
[INFO] [stdout] 64 |     /// The block's piece index is invalid.
[INFO] [stdout] 65 |     InvalidPieceIndex,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ReadError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `tracker_id` and `event` are never read
[INFO] [stdout]   --> src/tracker.rs:78:9
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub(crate) struct Announce {
[INFO] [stdout]    |                   -------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 78 |     pub tracker_id: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 82 |     pub event: Option<Event>,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 3 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 12.35s
[INFO] running `Command { std: "docker" "inspect" "7def61a0b879ef87af76884d16c2a1f7d24e31b119556e1a32bcd2ed8be3cdd1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "7def61a0b879ef87af76884d16c2a1f7d24e31b119556e1a32bcd2ed8be3cdd1", kill_on_drop: false }`
[INFO] [stdout] 7def61a0b879ef87af76884d16c2a1f7d24e31b119556e1a32bcd2ed8be3cdd1
[INFO] checking cratetorrent-0.1.0 against try#b4fc5dbf0bc33be331f9d893db5b3a794f29724a+rustflags=-Dexplicit_range -Dtrait_impl_range -Wrange_syntax -Wrange_bounds for pr-121251
[INFO] extracting crate cratetorrent 0.1.0 into /workspace/builds/worker-3-tc2/source
[INFO] validating manifest of crates.io crate cratetorrent 0.1.0 on toolchain b4fc5dbf0bc33be331f9d893db5b3a794f29724a
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b4fc5dbf0bc33be331f9d893db5b3a794f29724a" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking crates.io crate cratetorrent 0.1.0
[INFO] finished tweaking crates.io crate cratetorrent 0.1.0
[INFO] tweaked toml for crates.io crate cratetorrent 0.1.0 written to /workspace/builds/worker-3-tc2/source/Cargo.toml
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b4fc5dbf0bc33be331f9d893db5b3a794f29724a" "generate-lockfile" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]     Updating crates.io index
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b4fc5dbf0bc33be331f9d893db5b3a794f29724a" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+b4fc5dbf0bc33be331f9d893db5b3a794f29724a" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] a34a2e17ef79e8a9e36eb3f9fbd8795034b246617c6cd06dd16a8f00b682f10e
[INFO] running `Command { std: "docker" "start" "-a" "a34a2e17ef79e8a9e36eb3f9fbd8795034b246617c6cd06dd16a8f00b682f10e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "a34a2e17ef79e8a9e36eb3f9fbd8795034b246617c6cd06dd16a8f00b682f10e", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a34a2e17ef79e8a9e36eb3f9fbd8795034b246617c6cd06dd16a8f00b682f10e", kill_on_drop: false }`
[INFO] [stdout] a34a2e17ef79e8a9e36eb3f9fbd8795034b246617c6cd06dd16a8f00b682f10e
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-3-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid -Dexplicit_range -Dtrait_impl_range -Wrange_syntax -Wrange_bounds" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+b4fc5dbf0bc33be331f9d893db5b3a794f29724a" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] cabc585f9c01def96721da1471959983af4a96cac70a3150f17aad5263943781
[INFO] running `Command { std: "docker" "start" "-a" "cabc585f9c01def96721da1471959983af4a96cac70a3150f17aad5263943781", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.153
[INFO] [stderr]     Checking memchr v2.7.1
[INFO] [stderr]     Checking log v0.4.21
[INFO] [stderr]     Checking once_cell v1.19.0
[INFO] [stderr]     Checking futures-core v0.3.30
[INFO] [stderr]    Compiling slab v0.4.9
[INFO] [stderr]    Compiling cc v1.0.88
[INFO] [stderr]    Compiling syn v2.0.52
[INFO] [stderr]    Compiling pkg-config v0.3.30
[INFO] [stderr]     Checking itoa v1.0.10
[INFO] [stderr]    Compiling serde v1.0.197
[INFO] [stderr]     Checking futures-sink v0.3.30
[INFO] [stderr]    Compiling vcpkg v0.2.15
[INFO] [stderr]     Checking pin-project-lite v0.2.13
[INFO] [stderr]    Compiling tokio-macros v0.2.6
[INFO] [stderr]     Checking pin-project-lite v0.1.12
[INFO] [stderr]     Checking futures-channel v0.3.30
[INFO] [stderr]    Compiling unicase v2.7.0
[INFO] [stderr]     Checking futures-io v0.3.30
[INFO] [stderr]     Checking tinyvec_macros v0.1.1
[INFO] [stderr]     Checking futures-task v0.3.30
[INFO] [stderr]     Checking tinyvec v1.6.0
[INFO] [stderr]     Checking tracing-core v0.1.32
[INFO] [stderr]    Compiling indexmap v1.9.3
[INFO] [stderr]     Checking percent-encoding v2.3.1
[INFO] [stderr]    Compiling openssl v0.10.64
[INFO] [stderr]    Compiling httparse v1.8.0
[INFO] [stderr]     Checking bytes v1.5.0
[INFO] [stderr]    Compiling openssl-sys v0.9.101
[INFO] [stderr]     Checking iovec v0.1.4
[INFO] [stderr]     Checking net2 v0.2.39
[INFO] [stderr]     Checking num_cpus v1.16.0
[INFO] [stderr]     Checking foreign-types-shared v0.1.1
[INFO] [stderr]     Checking foreign-types v0.3.2
[INFO] [stderr]     Checking form_urlencoded v1.2.1
[INFO] [stderr]     Checking unicode-normalization v0.1.23
[INFO] [stderr]     Checking tracing v0.1.40
[INFO] [stderr]     Checking mio v0.6.23
[INFO] [stderr]     Checking http v0.2.11
[INFO] [stderr]    Compiling proc-macro-error-attr v1.0.4
[INFO] [stderr]     Checking unicode-bidi v0.3.15
[INFO] [stderr]     Checking hashbrown v0.12.3
[INFO] [stderr]    Compiling native-tls v0.2.11
[INFO] [stderr]     Checking itoa v0.4.8
[INFO] [stderr]     Checking tokio v0.2.25
[INFO] [stderr]    Compiling getrandom v0.1.16
[INFO] [stderr]     Checking bitflags v2.4.2
[INFO] [stderr]     Checking ryu v1.0.17
[INFO] [stderr]     Checking idna v0.5.0
[INFO] [stderr]    Compiling proc-macro-error v1.0.4
[INFO] [stderr]    Compiling ahash v0.7.8
[INFO] [stderr]     Checking try-lock v0.2.5
[INFO] [stderr]     Checking openssl-probe v0.1.5
[INFO] [stderr]     Checking url v2.5.0
[INFO] [stderr]     Checking want v0.3.1
[INFO] [stderr]    Compiling mime_guess v2.0.4
[INFO] [stderr]     Checking http-body v0.3.1
[INFO] [stderr]     Checking socket2 v0.3.19
[INFO] [stderr]     Checking getrandom v0.2.12
[INFO] [stderr]     Checking tower-service v0.3.2
[INFO] [stderr]    Compiling serde_json v1.0.114
[INFO] [stderr]    Compiling radium v0.5.3
[INFO] [stderr]     Checking rand_core v0.5.1
[INFO] [stderr]     Checking aho-corasick v1.1.2
[INFO] [stderr]     Checking mime v0.3.17
[INFO] [stderr]     Checking regex-syntax v0.8.2
[INFO] [stderr]     Checking ppv-lite86 v0.2.17
[INFO] [stderr]     Checking rand_chacha v0.2.2
[INFO] [stderr]    Compiling extend v0.1.2
[INFO] [stderr]     Checking hashbrown v0.11.2
[INFO] [stderr]     Checking block-buffer v0.9.0
[INFO] [stderr]     Checking digest v0.9.0
[INFO] [stderr]     Checking serde_urlencoded v0.7.1
[INFO] [stderr]     Checking serde_bytes v0.11.14
[INFO] [stderr]     Checking is-terminal v0.4.12
[INFO] [stderr]     Checking encoding_rs v0.8.33
[INFO] [stderr]     Checking tokio-util v0.3.1
[INFO] [stderr]     Checking wyz v0.2.0
[INFO] [stderr]     Checking difference v2.0.0
[INFO] [stderr]     Checking opaque-debug v0.3.1
[INFO] [stderr]     Checking dtoa v0.4.8
[INFO] [stderr]     Checking base64 v0.13.1
[INFO] [stderr]     Checking tap v1.0.1
[INFO] [stderr]     Checking funty v1.1.0
[INFO] [stderr]     Checking ipnet v2.9.0
[INFO] [stderr]     Checking cpufeatures v0.2.12
[INFO] [stderr]     Checking sha-1 v0.9.8
[INFO] [stderr]     Checking serde_urlencoded v0.6.1
[INFO] [stderr]     Checking assert-json-diff v1.1.0
[INFO] [stderr]     Checking nix v0.19.1
[INFO] [stderr]     Checking serde_bencode v0.2.4
[INFO] [stderr]     Checking tokio-util v0.2.0
[INFO] [stderr]     Checking colored v1.9.4
[INFO] [stderr]     Checking bitvec v0.19.6
[INFO] [stderr]     Checking lru v0.6.6
[INFO] [stderr]    Compiling futures-macro v0.3.30
[INFO] [stderr]    Compiling pin-project-internal v1.1.4
[INFO] [stderr]    Compiling openssl-macros v0.1.1
[INFO] [stderr]     Checking regex-automata v0.4.5
[INFO] [stderr]    Compiling serde_derive v1.0.197
[INFO] [stderr]     Checking rand v0.7.3
[INFO] [stderr]     Checking hex v0.4.3
[INFO] [stderr]     Checking futures-util v0.3.30
[INFO] [stderr]     Checking pretty_assertions v0.6.1
[INFO] [stderr]     Checking pin-project v1.1.4
[INFO] [stderr]     Checking tracing-futures v0.2.5
[INFO] [stderr]     Checking regex v1.10.3
[INFO] [stderr]     Checking mockito v0.28.0
[INFO] [stderr]     Checking tokio-tls v0.3.1
[INFO] [stderr]     Checking h2 v0.2.7
[INFO] [stderr]     Checking futures-executor v0.3.30
[INFO] [stderr]     Checking futures v0.3.30
[INFO] [stderr]     Checking hyper v0.13.10
[INFO] [stderr]     Checking hyper-tls v0.4.3
[INFO] [stderr]     Checking reqwest v0.10.10
[INFO] [stderr]     Checking cratetorrent v0.1.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/disk/io/piece.rs:168:14
[INFO] [stdout]     |
[INFO] [stdout] 168 |     for i in 0..block_count {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: requested on the command line with `-W range-syntax`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/disk/io/torrent.rs:342:45
[INFO] [stdout]     |
[INFO] [stdout] 342 |         let hash_slice = &self.piece_hashes[hash_pos..hash_pos + 20];
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/download.rs:105:27
[INFO] [stdout]     |
[INFO] [stdout] 105 |                 &pick_buf[pick_buf.len() - picked..]
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/iovecs.rs:314:28
[INFO] [stdout]     |
[INFO] [stdout] 314 |                 &self.bufs[0..0]
[INFO] [stdout]     |                            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeInclusive` range syntax
[INFO] [stdout]    --> src/iovecs.rs:317:28
[INFO] [stdout]     |
[INFO] [stdout] 317 |                 &self.bufs[0..=split.pos]
[INFO] [stdout]     |                            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/iovecs.rs:415:31
[INFO] [stdout]     |
[INFO] [stdout] 415 |         self.bufs = &mut bufs[bufs_to_remove_count..];
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/iovecs.rs:471:28
[INFO] [stdout]     |
[INFO] [stdout] 471 |             &mut self.bufs[second_half.pos..]
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/iovecs.rs:475:28
[INFO] [stdout]     |
[INFO] [stdout] 475 |             &mut self.bufs[write_buf_len..]
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/iovecs.rs:547:26
[INFO] [stdout]     |
[INFO] [stdout] 547 |     let bufs = &mut bufs[bufs_to_remove_count..];
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/piece_picker.rs:73:22
[INFO] [stdout]    |
[INFO] [stdout] 73 |         for index in 0..self.own_pieces.len() {
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/storage_info.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 22 |         self.torrent_offset..self.torrent_end_offset()
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/storage_info.rs:145:51
[INFO] [stdout]     |
[INFO] [stdout] 145 |         let files = self.files_intersecting_bytes(piece_offset..piece_end);
[INFO] [stdout]     |                                                   ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/storage_info.rs:163:13
[INFO] [stdout]     |
[INFO] [stdout] 163 |             0..1
[INFO] [stdout]     |             ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/storage_info.rs:179:32
[INFO] [stdout]     |
[INFO] [stdout] 179 |                 None => return 0..0,
[INFO] [stdout]     |                                ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/storage_info.rs:183:34
[INFO] [stdout]     |
[INFO] [stdout] 183 |             let mut file_range = first_matching_index..first_matching_index + 1;
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/torrent.rs:496:48
[INFO] [stdout]     |
[INFO] [stdout] 496 |         for addr in self.available_peers.drain(0..connect_count) {
[INFO] [stdout]     |                                                ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/tracker.rs:292:23
[INFO] [stdout]     |
[INFO] [stdout] 292 |             for _ in (0..buf_len).step_by(ENTRY_LEN) {
[INFO] [stdout]     |                       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/disk/io/piece.rs:168:14
[INFO] [stdout]     |
[INFO] [stdout] 168 |     for i in 0..block_count {
[INFO] [stdout]     |              ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: requested on the command line with `-W range-syntax`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/disk/io/torrent.rs:342:45
[INFO] [stdout]     |
[INFO] [stdout] 342 |         let hash_slice = &self.piece_hashes[hash_pos..hash_pos + 20];
[INFO] [stdout]     |                                             ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/disk/io.rs:36:26
[INFO] [stdout]    |
[INFO] [stdout] 36 |         let file_range = 0..1;
[INFO] [stdout]    |                          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/disk/io.rs:81:26
[INFO] [stdout]    |
[INFO] [stdout] 81 |         let file_range = 0..1;
[INFO] [stdout]    |                          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/disk/io.rs:121:26
[INFO] [stdout]     |
[INFO] [stdout] 121 |         let file_range = 0..1;
[INFO] [stdout]     |                          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/disk/io.rs:148:26
[INFO] [stdout]     |
[INFO] [stdout] 148 |         let file_range = 0..1;
[INFO] [stdout]     |                          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/disk/io.rs:193:26
[INFO] [stdout]     |
[INFO] [stdout] 193 |         let file_range = 0..3;
[INFO] [stdout]     |                          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/disk/io.rs:268:26
[INFO] [stdout]     |
[INFO] [stdout] 268 |         let file_range = 0..3;
[INFO] [stdout]     |                          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/disk/io.rs:331:14
[INFO] [stdout]     |
[INFO] [stdout] 331 |             (0 * BLOCK_LEN..1 * BLOCK_LEN)
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/disk/io.rs:335:14
[INFO] [stdout]     |
[INFO] [stdout] 335 |             (1 * BLOCK_LEN..2 * BLOCK_LEN)
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/disk/io.rs:339:14
[INFO] [stdout]     |
[INFO] [stdout] 339 |             (2 * BLOCK_LEN..3 * BLOCK_LEN)
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/disk/io.rs:343:14
[INFO] [stdout]     |
[INFO] [stdout] 343 |             (3 * BLOCK_LEN..4 * BLOCK_LEN)
[INFO] [stdout]     |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/disk.rs:337:22
[INFO] [stdout]     |
[INFO] [stdout] 337 |         for index in 0..pieces.len() {
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/disk.rs:341:35
[INFO] [stdout]     |
[INFO] [stdout] 341 |                 let data = &piece[block.offset as usize..block_end as usize];
[INFO] [stdout]     |                                   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/disk.rs:406:32
[INFO] [stdout]     |
[INFO] [stdout] 406 |                 &invalid_piece[block.offset as usize..block_end as usize];
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/disk.rs:462:31
[INFO] [stdout]     |
[INFO] [stdout] 462 |             let data = &piece[block.offset as usize..block_end as usize];
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/disk.rs:483:18
[INFO] [stdout]     |
[INFO] [stdout] 483 |         for _ in 0..block_count {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/disk.rs:530:18
[INFO] [stdout]     |
[INFO] [stdout] 530 |         for _ in 0..block_count {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/disk.rs:574:18
[INFO] [stdout]     |
[INFO] [stdout] 574 |                 (0..piece_len).map(|b| (b % 256) as u8).collect(),
[INFO] [stdout]     |                  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/disk.rs:575:18
[INFO] [stdout]     |
[INFO] [stdout] 575 |                 (0..piece_len)
[INFO] [stdout]     |                  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/disk.rs:579:18
[INFO] [stdout]     |
[INFO] [stdout] 579 |                 (0..piece_len)
[INFO] [stdout]     |                  ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/disk.rs:583:18
[INFO] [stdout]     |
[INFO] [stdout] 583 |                 (0..last_piece_len)
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/download.rs:105:27
[INFO] [stdout]     |
[INFO] [stdout] 105 |                 &pick_buf[pick_buf.len() - picked..]
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/download.rs:188:18
[INFO] [stdout]     |
[INFO] [stdout] 188 |         for _ in 0..block_count {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/download.rs:334:18
[INFO] [stdout]     |
[INFO] [stdout] 334 |         for _ in 0..2 {
[INFO] [stdout]     |                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/download.rs:360:18
[INFO] [stdout]     |
[INFO] [stdout] 360 |         for _ in 0..block_count {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/iovecs.rs:314:28
[INFO] [stdout]     |
[INFO] [stdout] 314 |                 &self.bufs[0..0]
[INFO] [stdout]     |                            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeInclusive` range syntax
[INFO] [stdout]    --> src/iovecs.rs:317:28
[INFO] [stdout]     |
[INFO] [stdout] 317 |                 &self.bufs[0..=split.pos]
[INFO] [stdout]     |                            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/iovecs.rs:415:31
[INFO] [stdout]     |
[INFO] [stdout] 415 |         self.bufs = &mut bufs[bufs_to_remove_count..];
[INFO] [stdout]     |                               ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/iovecs.rs:471:28
[INFO] [stdout]     |
[INFO] [stdout] 471 |             &mut self.bufs[second_half.pos..]
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/iovecs.rs:475:28
[INFO] [stdout]     |
[INFO] [stdout] 475 |             &mut self.bufs[write_buf_len..]
[INFO] [stdout]     |                            ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/iovecs.rs:547:26
[INFO] [stdout]     |
[INFO] [stdout] 547 |     let bufs = &mut bufs[bufs_to_remove_count..];
[INFO] [stdout]     |                          ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/iovecs.rs:581:19
[INFO] [stdout]     |
[INFO] [stdout] 581 |             vec![(0..16).collect::<Vec<u8>>(), (16..32).collect::<Vec<u8>>()];
[INFO] [stdout]     |                   ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/iovecs.rs:581:49
[INFO] [stdout]     |
[INFO] [stdout] 581 |             vec![(0..16).collect::<Vec<u8>>(), (16..32).collect::<Vec<u8>>()];
[INFO] [stdout]     |                                                 ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/iovecs.rs:624:19
[INFO] [stdout]     |
[INFO] [stdout] 624 |             vec![(0..16).collect::<Vec<u8>>(), (16..32).collect::<Vec<u8>>()];
[INFO] [stdout]     |                   ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/iovecs.rs:624:49
[INFO] [stdout]     |
[INFO] [stdout] 624 |             vec![(0..16).collect::<Vec<u8>>(), (16..32).collect::<Vec<u8>>()];
[INFO] [stdout]     |                                                 ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/iovecs.rs:668:19
[INFO] [stdout]     |
[INFO] [stdout] 668 |             vec![(0..16).collect::<Vec<u8>>(), (16..32).collect::<Vec<u8>>()];
[INFO] [stdout]     |                   ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/iovecs.rs:668:49
[INFO] [stdout]     |
[INFO] [stdout] 668 |             vec![(0..16).collect::<Vec<u8>>(), (16..32).collect::<Vec<u8>>()];
[INFO] [stdout]     |                                                 ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/iovecs.rs:717:14
[INFO] [stdout]     |
[INFO] [stdout] 717 |             (0..16).collect::<Vec<u8>>(),
[INFO] [stdout]     |              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/iovecs.rs:718:14
[INFO] [stdout]     |
[INFO] [stdout] 718 |             (16..32).collect::<Vec<u8>>(),
[INFO] [stdout]     |              ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/iovecs.rs:719:14
[INFO] [stdout]     |
[INFO] [stdout] 719 |             (32..48).collect::<Vec<u8>>(),
[INFO] [stdout]     |              ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/iovecs.rs:765:14
[INFO] [stdout]     |
[INFO] [stdout] 765 |             (0..16).collect::<Vec<u8>>(),
[INFO] [stdout]     |              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/iovecs.rs:766:14
[INFO] [stdout]     |
[INFO] [stdout] 766 |             (16..32).collect::<Vec<u8>>(),
[INFO] [stdout]     |              ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/iovecs.rs:767:14
[INFO] [stdout]     |
[INFO] [stdout] 767 |             (32..48).collect::<Vec<u8>>(),
[INFO] [stdout]     |              ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/iovecs.rs:818:14
[INFO] [stdout]     |
[INFO] [stdout] 818 |             (0..16).collect::<Vec<u8>>(),
[INFO] [stdout]     |              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/iovecs.rs:819:14
[INFO] [stdout]     |
[INFO] [stdout] 819 |             (16..32).collect::<Vec<u8>>(),
[INFO] [stdout]     |              ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/iovecs.rs:820:14
[INFO] [stdout]     |
[INFO] [stdout] 820 |             (32..48).collect::<Vec<u8>>(),
[INFO] [stdout]     |              ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/iovecs.rs:885:14
[INFO] [stdout]     |
[INFO] [stdout] 885 |             (0..16).collect::<Vec<u8>>(),
[INFO] [stdout]     |              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/iovecs.rs:886:14
[INFO] [stdout]     |
[INFO] [stdout] 886 |             (16..32).collect::<Vec<u8>>(),
[INFO] [stdout]     |              ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/iovecs.rs:887:14
[INFO] [stdout]     |
[INFO] [stdout] 887 |             (32..48).collect::<Vec<u8>>(),
[INFO] [stdout]     |              ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/iovecs.rs:929:14
[INFO] [stdout]     |
[INFO] [stdout] 929 |             (0..16).collect::<Vec<u8>>(),
[INFO] [stdout]     |              ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/iovecs.rs:930:14
[INFO] [stdout]     |
[INFO] [stdout] 930 |             (16..32).collect::<Vec<u8>>(),
[INFO] [stdout]     |              ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/iovecs.rs:931:14
[INFO] [stdout]     |
[INFO] [stdout] 931 |             (32..48).collect::<Vec<u8>>(),
[INFO] [stdout]     |              ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/peer/codec.rs:604:55
[INFO] [stdout]     |
[INFO] [stdout] 604 |         read_buf.extend_from_slice(&encoded_handshake[0..handshake_split_pos]);
[INFO] [stdout]     |                                                       ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/peer/codec.rs:610:55
[INFO] [stdout]     |
[INFO] [stdout] 610 |         read_buf.extend_from_slice(&encoded_handshake[handshake_split_pos..]);
[INFO] [stdout]     |                                                       ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/peer/codec.rs:638:49
[INFO] [stdout]     |
[INFO] [stdout] 638 |             read_buf.extend_from_slice(&encoded[0..split_pos]);
[INFO] [stdout]     |                                                 ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `RangeFrom` range syntax
[INFO] [stdout]    --> src/peer/codec.rs:642:49
[INFO] [stdout]     |
[INFO] [stdout] 642 |             read_buf.extend_from_slice(&encoded[split_pos..]);
[INFO] [stdout]     |                                                 ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/peer/codec.rs:659:43
[INFO] [stdout]     |
[INFO] [stdout] 659 |         let mut partial_encoded = encoded[0..30].into();
[INFO] [stdout]     |                                           ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/peer/codec.rs:823:43
[INFO] [stdout]     |
[INFO] [stdout] 823 |         let mut partial_encoded = encoded[0..encoded.len() - 1].into();
[INFO] [stdout]     |                                           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/piece_picker.rs:73:22
[INFO] [stdout]    |
[INFO] [stdout] 73 |         for index in 0..self.own_pieces.len() {
[INFO] [stdout]    |                      ^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/piece_picker.rs:211:22
[INFO] [stdout]     |
[INFO] [stdout] 211 |         for index in 0..piece_count {
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/piece_picker.rs:247:18
[INFO] [stdout]     |
[INFO] [stdout] 247 |         for _ in 0..piece_count - owned_pieces.len() {
[INFO] [stdout]     |                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/piece_picker.rs:264:22
[INFO] [stdout]     |
[INFO] [stdout] 264 |         for index in 0..have_count {
[INFO] [stdout]     |                      ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/piece_picker.rs:273:22
[INFO] [stdout]     |
[INFO] [stdout] 273 |         for index in have_count..piece_count {
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/piece_picker.rs:292:18
[INFO] [stdout]     |
[INFO] [stdout] 292 |         for i in 0..2 {
[INFO] [stdout]     |                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/piece_picker.rs:299:18
[INFO] [stdout]     |
[INFO] [stdout] 299 |         for _ in 0..3 {
[INFO] [stdout]     |                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/piece_picker.rs:309:18
[INFO] [stdout]     |
[INFO] [stdout] 309 |         for _ in 0..10 {
[INFO] [stdout]     |                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/piece_picker.rs:336:22
[INFO] [stdout]     |
[INFO] [stdout] 336 |         for index in 0..8 {
[INFO] [stdout]     |                      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/piece_picker.rs:342:22
[INFO] [stdout]     |
[INFO] [stdout] 342 |         for index in 0..8 {
[INFO] [stdout]     |                      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/piece_picker.rs:349:22
[INFO] [stdout]     |
[INFO] [stdout] 349 |         for index in 0..9 {
[INFO] [stdout]     |                      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/piece_picker.rs:357:22
[INFO] [stdout]     |
[INFO] [stdout] 357 |         for index in 0..piece_count {
[INFO] [stdout]     |                      ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/storage_info.rs:22:9
[INFO] [stdout]    |
[INFO] [stdout] 22 |         self.torrent_offset..self.torrent_end_offset()
[INFO] [stdout]    |         ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/storage_info.rs:145:51
[INFO] [stdout]     |
[INFO] [stdout] 145 |         let files = self.files_intersecting_bytes(piece_offset..piece_end);
[INFO] [stdout]     |                                                   ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/storage_info.rs:163:13
[INFO] [stdout]     |
[INFO] [stdout] 163 |             0..1
[INFO] [stdout]     |             ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/storage_info.rs:179:32
[INFO] [stdout]     |
[INFO] [stdout] 179 |                 None => return 0..0,
[INFO] [stdout]     |                                ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/storage_info.rs:183:34
[INFO] [stdout]     |
[INFO] [stdout] 183 |             let mut file_range = first_matching_index..first_matching_index + 1;
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/storage_info.rs:327:54
[INFO] [stdout]     |
[INFO] [stdout] 327 |         assert_eq!(info.files_intersecting_piece(0), 0..1);
[INFO] [stdout]     |                                                      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/storage_info.rs:328:54
[INFO] [stdout]     |
[INFO] [stdout] 328 |         assert_eq!(info.files_intersecting_piece(1), 0..1);
[INFO] [stdout]     |                                                      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/storage_info.rs:329:54
[INFO] [stdout]     |
[INFO] [stdout] 329 |         assert_eq!(info.files_intersecting_piece(2), 0..1);
[INFO] [stdout]     |                                                      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/storage_info.rs:330:54
[INFO] [stdout]     |
[INFO] [stdout] 330 |         assert_eq!(info.files_intersecting_piece(3), 0..1);
[INFO] [stdout]     |                                                      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/storage_info.rs:407:54
[INFO] [stdout]     |
[INFO] [stdout] 407 |         assert_eq!(info.files_intersecting_piece(0), 0..2);
[INFO] [stdout]     |                                                      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/storage_info.rs:409:54
[INFO] [stdout]     |
[INFO] [stdout] 409 |         assert_eq!(info.files_intersecting_piece(1), 1..4);
[INFO] [stdout]     |                                                      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/storage_info.rs:411:54
[INFO] [stdout]     |
[INFO] [stdout] 411 |         assert_eq!(info.files_intersecting_piece(2), 3..5);
[INFO] [stdout]     |                                                      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/storage_info.rs:413:54
[INFO] [stdout]     |
[INFO] [stdout] 413 |         assert_eq!(info.files_intersecting_piece(3), 5..6);
[INFO] [stdout]     |                                                      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/storage_info.rs:415:54
[INFO] [stdout]     |
[INFO] [stdout] 415 |         assert_eq!(info.files_intersecting_piece(4), 6..7);
[INFO] [stdout]     |                                                      ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/storage_info.rs:435:50
[INFO] [stdout]     |
[INFO] [stdout] 435 |         assert_eq!(info.files_intersecting_bytes(0..0), 0..1);
[INFO] [stdout]     |                                                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/storage_info.rs:435:57
[INFO] [stdout]     |
[INFO] [stdout] 435 |         assert_eq!(info.files_intersecting_bytes(0..0), 0..1);
[INFO] [stdout]     |                                                         ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/storage_info.rs:436:50
[INFO] [stdout]     |
[INFO] [stdout] 436 |         assert_eq!(info.files_intersecting_bytes(0..1), 0..1);
[INFO] [stdout]     |                                                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/storage_info.rs:436:57
[INFO] [stdout]     |
[INFO] [stdout] 436 |         assert_eq!(info.files_intersecting_bytes(0..1), 0..1);
[INFO] [stdout]     |                                                         ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/storage_info.rs:437:50
[INFO] [stdout]     |
[INFO] [stdout] 437 |         assert_eq!(info.files_intersecting_bytes(0..12341234), 0..1);
[INFO] [stdout]     |                                                  ^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/storage_info.rs:437:64
[INFO] [stdout]     |
[INFO] [stdout] 437 |         assert_eq!(info.files_intersecting_bytes(0..12341234), 0..1);
[INFO] [stdout]     |                                                                ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/storage_info.rs:474:50
[INFO] [stdout]     |
[INFO] [stdout] 474 |         assert_eq!(info.files_intersecting_bytes(0..4), 0..1);
[INFO] [stdout]     |                                                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/storage_info.rs:474:57
[INFO] [stdout]     |
[INFO] [stdout] 474 |         assert_eq!(info.files_intersecting_bytes(0..4), 0..1);
[INFO] [stdout]     |                                                         ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/storage_info.rs:476:50
[INFO] [stdout]     |
[INFO] [stdout] 476 |         assert_eq!(info.files_intersecting_bytes(0..5), 0..2);
[INFO] [stdout]     |                                                  ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/storage_info.rs:476:57
[INFO] [stdout]     |
[INFO] [stdout] 476 |         assert_eq!(info.files_intersecting_bytes(0..5), 0..2);
[INFO] [stdout]     |                                                         ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/storage_info.rs:478:50
[INFO] [stdout]     |
[INFO] [stdout] 478 |         assert_eq!(info.files_intersecting_bytes(0..13), 0..2);
[INFO] [stdout]     |                                                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/storage_info.rs:478:58
[INFO] [stdout]     |
[INFO] [stdout] 478 |         assert_eq!(info.files_intersecting_bytes(0..13), 0..2);
[INFO] [stdout]     |                                                          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/storage_info.rs:480:50
[INFO] [stdout]     |
[INFO] [stdout] 480 |         assert_eq!(info.files_intersecting_bytes(0..15), 0..3);
[INFO] [stdout]     |                                                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/storage_info.rs:480:58
[INFO] [stdout]     |
[INFO] [stdout] 480 |         assert_eq!(info.files_intersecting_bytes(0..15), 0..3);
[INFO] [stdout]     |                                                          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/storage_info.rs:482:50
[INFO] [stdout]     |
[INFO] [stdout] 482 |         assert_eq!(info.files_intersecting_bytes(0..18), 0..4);
[INFO] [stdout]     |                                                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/storage_info.rs:482:58
[INFO] [stdout]     |
[INFO] [stdout] 482 |         assert_eq!(info.files_intersecting_bytes(0..18), 0..4);
[INFO] [stdout]     |                                                          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/storage_info.rs:484:50
[INFO] [stdout]     |
[INFO] [stdout] 484 |         assert_eq!(info.files_intersecting_bytes(25..26), 3..4);
[INFO] [stdout]     |                                                  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/storage_info.rs:484:59
[INFO] [stdout]     |
[INFO] [stdout] 484 |         assert_eq!(info.files_intersecting_bytes(25..26), 3..4);
[INFO] [stdout]     |                                                           ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/storage_info.rs:486:50
[INFO] [stdout]     |
[INFO] [stdout] 486 |         assert_eq!(info.files_intersecting_bytes(4..16), 1..3);
[INFO] [stdout]     |                                                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/storage_info.rs:486:58
[INFO] [stdout]     |
[INFO] [stdout] 486 |         assert_eq!(info.files_intersecting_bytes(4..16), 1..3);
[INFO] [stdout]     |                                                          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/storage_info.rs:489:50
[INFO] [stdout]     |
[INFO] [stdout] 489 |         assert_eq!(info.files_intersecting_bytes(8..14), 1..3);
[INFO] [stdout]     |                                                  ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/storage_info.rs:489:58
[INFO] [stdout]     |
[INFO] [stdout] 489 |         assert_eq!(info.files_intersecting_bytes(8..14), 1..3);
[INFO] [stdout]     |                                                          ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/storage_info.rs:492:50
[INFO] [stdout]     |
[INFO] [stdout] 492 |         assert_eq!(info.files_intersecting_bytes(13..14), 2..3);
[INFO] [stdout]     |                                                  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/storage_info.rs:492:59
[INFO] [stdout]     |
[INFO] [stdout] 492 |         assert_eq!(info.files_intersecting_bytes(13..14), 2..3);
[INFO] [stdout]     |                                                           ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/storage_info.rs:494:50
[INFO] [stdout]     |
[INFO] [stdout] 494 |         assert_eq!(info.files_intersecting_bytes(30..38), 0..0);
[INFO] [stdout]     |                                                  ^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/storage_info.rs:494:59
[INFO] [stdout]     |
[INFO] [stdout] 494 |         assert_eq!(info.files_intersecting_bytes(30..38), 0..0);
[INFO] [stdout]     |                                                           ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/torrent.rs:496:48
[INFO] [stdout]     |
[INFO] [stdout] 496 |         for addr in self.available_peers.drain(0..connect_count) {
[INFO] [stdout]     |                                                ^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/tracker.rs:292:23
[INFO] [stdout]     |
[INFO] [stdout] 292 |             for _ in (0..buf_len).step_by(ENTRY_LEN) {
[INFO] [stdout]     |                       ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `InvalidPieceIndex` is never constructed
[INFO] [stdout]   --> src/disk/error.rs:44:5
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub(crate) enum WriteError {
[INFO] [stdout]    |                 ---------- variant in this enum
[INFO] [stdout] 43 |     /// The block's piece index is invalid.
[INFO] [stdout] 44 |     InvalidPieceIndex,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `WriteError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `InvalidPieceIndex` is never constructed
[INFO] [stdout]   --> src/disk/error.rs:65:5
[INFO] [stdout]    |
[INFO] [stdout] 63 | pub(crate) enum ReadError {
[INFO] [stdout]    |                 --------- variant in this enum
[INFO] [stdout] 64 |     /// The block's piece index is invalid.
[INFO] [stdout] 65 |     InvalidPieceIndex,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ReadError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `tracker_id` and `event` are never read
[INFO] [stdout]   --> src/tracker.rs:78:9
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub(crate) struct Announce {
[INFO] [stdout]    |                   -------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 78 |     pub tracker_id: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 82 |     pub event: Option<Event>,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: explicit usage of `Range` type in public function
[INFO] [stdout]    --> src/storage_info.rs:154:21
[INFO] [stdout]     |
[INFO] [stdout] 154 |         byte_range: Range<u64>,
[INFO] [stdout]     |                     ^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: requested on the command line with `-D explicit-range`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 1 previous error; 20 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `cratetorrent` (lib) due to 2 previous errors; 20 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] [stdout] warning: variant `InvalidPieceIndex` is never constructed
[INFO] [stdout]   --> src/disk/error.rs:44:5
[INFO] [stdout]    |
[INFO] [stdout] 42 | pub(crate) enum WriteError {
[INFO] [stdout]    |                 ---------- variant in this enum
[INFO] [stdout] 43 |     /// The block's piece index is invalid.
[INFO] [stdout] 44 |     InvalidPieceIndex,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `WriteError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `InvalidPieceIndex` is never constructed
[INFO] [stdout]   --> src/disk/error.rs:65:5
[INFO] [stdout]    |
[INFO] [stdout] 63 | pub(crate) enum ReadError {
[INFO] [stdout]    |                 --------- variant in this enum
[INFO] [stdout] 64 |     /// The block's piece index is invalid.
[INFO] [stdout] 65 |     InvalidPieceIndex,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `ReadError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `tracker_id` and `event` are never read
[INFO] [stdout]   --> src/tracker.rs:78:9
[INFO] [stdout]    |
[INFO] [stdout] 50 | pub(crate) struct Announce {
[INFO] [stdout]    |                   -------- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 78 |     pub tracker_id: Option<String>,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 82 |     pub event: Option<Event>,
[INFO] [stdout]    |         ^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 116 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] running `Command { std: "docker" "inspect" "cabc585f9c01def96721da1471959983af4a96cac70a3150f17aad5263943781", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "cabc585f9c01def96721da1471959983af4a96cac70a3150f17aad5263943781", kill_on_drop: false }`
[INFO] [stdout] cabc585f9c01def96721da1471959983af4a96cac70a3150f17aad5263943781
